Tarea_5 - C21380 - FabianBrenesThomas_C24067 - AnthonyJimenezNavarro

Estudiantes

Fabián Brenes Thomas - C21380

Anthony Mauricio Jiménez Navarro - C24067

2024-07-03

Preparativos

# Cargar las configuraciones iniciales
source("cod/r/setup.R")
# Se carga la base del archivo .xlsx
Datos_original <- read_excel("data/Datos.xlsx")

Tratamiento de los datos

# Se eliminan las entradas que cuentan con valores NA, ya que las entradas con NA unicamente corresponden a titulos de los apartados, no resulta inadecuado. eliminar estos
Datos <- Datos_original %>% drop_na()

# Se transforman los datos a un formato long, esto para llevar a cabo la transposicion adecuada para estudiar los datos.
Datos <- Datos %>%
  pivot_longer(cols = -`Componente demográfico`, names_to = "Year", values_to = "Value")

# Los datos previamente convertidos a un formato long ahora se pueden pasar a un formate wide, de forma que resulta mas adecuado llevar a cabo el estudio.
Datos <- Datos %>%
  pivot_wider(names_from = `Componente demográfico`, values_from = "Value")

# Se convierten todas las variables a numeric
Datos <- as.data.frame(sapply(Datos, as.numeric))

Analisis exploratorio de datos

summary(Datos)
##       Year      Poblacion_total   Poblacion_hombres Poblacion_mujeres
##  Min.   :2000   Min.   :3872349   Min.   :1961351   Min.   :1910998  
##  1st Qu.:2006   1st Qu.:4262804   1st Qu.:2157386   1st Qu.:2105418  
##  Median :2012   Median :4622304   Median :2336196   Median :2286108  
##  Mean   :2012   Mean   :4605847   Mean   :2326461   Mean   :2279386  
##  3rd Qu.:2017   3rd Qu.:4961468   3rd Qu.:2502595   3rd Qu.:2458873  
##  Max.   :2023   Max.   :5262237   Max.   :2648531   Max.   :2613706  
##  Tasa de crecimiento natural (por cien habitantes)
##  Min.   : 0.3994                                  
##  1st Qu.: 9.1409                                  
##  Median :11.5344                                  
##  Mean   :10.0967                                  
##  3rd Qu.:13.0214                                  
##  Max.   :16.3296                                  
##  Tasa bruta de natalidad (por mil habitantes)
##  Min.   : 9.541                              
##  1st Qu.:13.852                              
##  Median :15.702                              
##  Mean   :15.223                              
##  3rd Qu.:16.998                              
##  Max.   :20.189                              
##  Tasa global de fecundidad (por mujer) Reproduccion_bruta Reproduccion_neta
##  Min.   :1.219                         Min.   :0.5945     Min.   :0.5942   
##  1st Qu.:1.669                         1st Qu.:0.8140     1st Qu.:0.8137   
##  Median :1.849                         Median :0.9022     Median :0.9017   
##  Mean   :1.814                         Mean   :0.8848     Mean   :0.8844   
##  3rd Qu.:1.982                         3rd Qu.:0.9669     3rd Qu.:0.9664   
##  Max.   :2.417                         Max.   :1.1789     Max.   :1.1783   
##  General (por mil habitantes) Mortalidad_hombres Mortalidad_mujeres
##  Min.   :3.730                Min.   :4.245      Min.   :3.202     
##  1st Qu.:3.929                1st Qu.:4.462      1st Qu.:3.389     
##  Median :4.161                Median :4.719      Median :3.646     
##  Mean   :4.398                Mean   :4.957      Mean   :3.828     
##  3rd Qu.:4.711                3rd Qu.:5.268      3rd Qu.:4.120     
##  Max.   :6.020                Max.   :6.807      Max.   :5.221     
##  Niñez (0 - 4 años) (por mil nacimientos) Mortalidad_niñez_hombres
##  Min.   : 8.883                           Min.   : 9.68           
##  1st Qu.: 9.777                           1st Qu.:10.41           
##  Median :10.487                           Median :11.47           
##  Mean   :10.607                           Mean   :11.55           
##  3rd Qu.:11.229                           3rd Qu.:12.69           
##  Max.   :13.269                           Max.   :14.51           
##  Mortalidad_niñez_mujeres Infantil (por mil nacimientos)
##  Min.   : 8.043           Min.   : 7.742                
##  1st Qu.: 9.128           1st Qu.: 8.340                
##  Median : 9.561           Median : 9.009                
##  Mean   : 9.619           Mean   : 9.086                
##  3rd Qu.:10.009           3rd Qu.: 9.726                
##  Max.   :11.933           Max.   :11.146                
##  Mortalidad_infantil_hombres Mortalidad_infantil_mujeres
##  Min.   : 7.979              Min.   : 7.021             
##  1st Qu.: 8.752              1st Qu.: 7.893             
##  Median : 9.789              Median : 8.233             
##  Mean   : 9.837              Mean   : 8.300             
##  3rd Qu.:10.721              3rd Qu.: 8.762             
##  Max.   :12.124              Max.   :10.095             
##  Neonatal (por mil nacimientos) Mortalidad_neonatal_hombres
##  Min.   :5.829                  Min.   :6.145              
##  1st Qu.:6.320                  1st Qu.:6.844              
##  Median :6.654                  Median :7.297              
##  Mean   :6.679                  Mean   :7.337              
##  3rd Qu.:7.071                  3rd Qu.:7.937              
##  Max.   :7.661                  Max.   :8.823              
##  Mortalidad_neonatal_mujeres Posneonatal (por mil nacimientos)
##  Min.   :5.152               Min.   :1.771                    
##  1st Qu.:5.821               1st Qu.:2.027                    
##  Median :6.000               Median :2.364                    
##  Mean   :5.991               Mean   :2.407                    
##  3rd Qu.:6.219               3rd Qu.:2.648                    
##  Max.   :6.973               Max.   :3.486                    
##  Mortalidad_posneonatal_hombres Mortalidad_posneonatal_mujeres
##  Min.   :1.778                  Min.   :1.764                 
##  1st Qu.:2.047                  1st Qu.:1.901                 
##  Median :2.453                  Median :2.195                 
##  Mean   :2.500                  Mean   :2.309                 
##  3rd Qu.:2.902                  3rd Qu.:2.532                 
##  Max.   :3.824                  Max.   :3.442                 
##  Razón de mortalidad materna (por diez mil nacimientos) Esperanza_total
##  Min.   :0.7967                                         Min.   :77.82  
##  1st Qu.:2.1976                                         1st Qu.:78.91  
##  Median :2.8910                                         Median :79.43  
##  Mean   :2.7746                                         Mean   :79.50  
##  3rd Qu.:3.3535                                         3rd Qu.:80.23  
##  Max.   :4.0525                                         Max.   :81.02  
##  Esperanza_hombres Esperanza_mujeres Tasa de nupcialidad (por mil habitantes)
##  Min.   :75.46     Min.   :80.18     Min.   :3.688                           
##  1st Qu.:76.47     1st Qu.:81.35     1st Qu.:5.045                           
##  Median :76.91     Median :81.95     Median :5.461                           
##  Mean   :77.02     Mean   :81.99     Mean   :5.386                           
##  3rd Qu.:77.68     3rd Qu.:82.77     3rd Qu.:5.985                           
##  Max.   :78.44     Max.   :83.60     Max.   :6.310                           
##    Católicos        Civiles     
##  Min.   :1.227   Min.   :6.188  
##  1st Qu.:2.500   1st Qu.:7.318  
##  Median :3.015   Median :7.824  
##  Mean   :3.064   Mean   :7.755  
##  3rd Qu.:3.412   3rd Qu.:8.092  
##  Max.   :5.374   Max.   :9.247
cor_matrix <- cor(Datos)
corrplot(cor_matrix, "circle", tl.cex = 0.5)

Graficos dinamicos

grafico1 <- ggplot(Datos, aes(x = Year, y = Reproduccion_bruta)) +
  geom_line() +
  geom_point() +
  labs(title = "Reproducción Bruta por Año",
       x = "Año",
       y = "Reproducción Bruta") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
p1_dinamico <- ggplotly(grafico1)

grafico2 <- ggplot(Datos, aes(x = Year, y = `Tasa de crecimiento natural (por cien habitantes)`)) +
  geom_line() +
  geom_point() +
  labs(title = "Tasa de crecimiento natural por Año",
       x = "Año",
       y = "Tasa de crecimiento natural") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
p2_dinamico <- ggplotly(grafico2)

grafico3 <- ggplot(Datos, aes(x = Year, y = `General (por mil habitantes)`)) +
  geom_line() +
  geom_point() +
  labs(title = "Mortalidad general por mil habitantes por Año",
       x = "Año",
       y = "Mortalidad general por mil habitantes") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
p3_dinamico <- ggplotly(grafico3)

grafico4 <- ggplot(Datos, aes(x = Year, y = Poblacion_total)) +
  geom_line() +
  geom_point() +
  labs(title = "Poblacion total por Año",
       x = "Año",
       y = "Poblacion total") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
p4_dinamico <- ggplotly(grafico4)

grafico5 <- ggplot(Datos, aes(x = Year, y = `Tasa de nupcialidad (por mil habitantes)`)) +
  geom_line() +
  geom_point() +
  labs(title = "Tasa de nupcialidad por mil habitantes por Año",
       x = "Año",
       y = "Nupcialidad por mil habitantes") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
p5_dinamico <- ggplotly(grafico5)
p1_dinamico
p2_dinamico
p3_dinamico
p4_dinamico
p5_dinamico

Grafico resumen

grafico_combinado <- ggplot(Datos) +
  geom_line(aes(x = Year, y = Reproduccion_bruta, color = "Reproducción Bruta")) +
  geom_point(aes(x = Year, y = Reproduccion_bruta, color = "Reproducción Bruta")) +
  geom_line(aes(x = Year, y = `Tasa de crecimiento natural (por cien habitantes)`, color = "Tasa de crecimiento natural")) +
  geom_point(aes(x = Year, y = `Tasa de crecimiento natural (por cien habitantes)`, color = "Tasa de crecimiento natural")) +
  geom_line(aes(x = Year, y = `General (por mil habitantes)`, color = "Mortalidad general")) +
  geom_point(aes(x = Year, y = `General (por mil habitantes)`, color = "Mortalidad general")) +
  geom_line(aes(x = Year, y = `Tasa de nupcialidad (por mil habitantes)`, color = "Tasa de nupcialidad")) +
  geom_point(aes(x = Year, y = `Tasa de nupcialidad (por mil habitantes)`, color = "Tasa de nupcialidad")) +
  labs(title = "Diferentes Métricas por Año",
       x = "Año",
       y = "Valor",
       color = "Métricas") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

grafico_combinado_dinamico <- ggplotly(grafico_combinado)
grafico_combinado_dinamico